home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / dbapg.arc / NATLOG.PRG < prev    next >
Encoding:
Text File  |  1984-08-12  |  1.5 KB  |  53 lines

  1. * Program.: NATLOG.PRG
  2. * Author..: Kelly Mc Tiernan
  3. * Date....: 12/18/83
  4. * Notice..: Copyright 1983, Kelly Mc Tiernan, All Rights Reserved
  5. * Version.: dBASE II, version 2.4x
  6. * Notes...: Calculates the natural logarithm of a number.
  7. * Local...: first, interim, power
  8. *
  9. *    IN: number-N-10 
  10. *   OUT: natlog-N-10-5
  11. *
  12. STORE number TO first
  13. STORE 0 TO natlog
  14. DO CASE
  15.    CASE first <= 0
  16.       ? "ERROR - CANNOT TAKE THE NATURAL LOGARITHM "+;
  17.         "OF A NUMBER <= 0"
  18.       CANCEL
  19.    CASE first > 2
  20.       * ---Calculate integer portion.
  21.       DO WHILE first > 2
  22.          STORE first / 2 TO first
  23.          STORE natlog + 0.6931471 TO natlog
  24.       ENDDO
  25.    CASE first < .5
  26.       * ---Handle lower convergence.
  27.       DO WHILE first < .5
  28.          STORE first * 2 TO first
  29.          STORE natlog - 0.69314718 TO natlog
  30.       ENDDO
  31. ENDCASE
  32. * ---Handle upper convergence.
  33. IF first > 1.1
  34.    DO WHILE first > 1.1
  35.       STORE first / 1.1 TO natlog
  36.       STORE natlog + 0.09531018 TO natlog
  37.    ENDDO
  38. ENDIF
  39. * ---Calculation the remainder.
  40. STORE - ( first - 1 ) TO first
  41. STORE 1 TO interim
  42. STORE 0 TO power
  43. DO WHILE power <= 25
  44.    STORE power + 1 TO power
  45.    STORE first * interim / 1 TO interim
  46.    STORE natlog - interim / power TO natlog
  47. ENDDO
  48. STORE INT(natlog) + INT( (natlog -;
  49.       INT(natlog)) * 100000 + .5 ) / 100000.00000 TO natlog
  50. RELEASE first, interim, power
  51. RETURN
  52. * EOF: NATLOG.PRG
  53.